package cn.xiaopengstack.api;

import cn.xiaopengstack.api.response.Response;
import org.springframework.ai.chat.model.ChatResponse;
import reactor.core.publisher.Flux;

import java.util.List;

/**
 * @author jiangyangang
 */
public interface IAiService {

    /**
     * 生成
     * @param model
     * @param message
     * @return
     */
    ChatResponse generate(String model, String message);

    /**
     * 流式生成
     * @param model
     * @param message
     * @return
     */
    Flux<ChatResponse> generateStream(String model, String message);

    /**
     * 使用知识库进行流式生成
     * @param model
     * @param ragTag
     * @param message
     * @return
     */
    Flux<ChatResponse> generateStreamRag(String model, String ragTag, String message);


    ChatResponse generateRag(String model, String ragTag, String message);

    /**
     * 获取模型列表
     * @return
     */
    Response<List<String>> models();
}
